1. Field of the Invention
The present invention pertains to computerized three dimensional geometric modeling systems, and particularly to the editing of solid shapes.
2. Related Art and Other Considerations
The computer has greatly affected essentially all forms of information management, including the geometric modeling arts. Nowadays there are numerous computer program products that allow the user to create, store, and modify geometric models and their graphical renderings of various types on a display screen, and to print or otherwise output such geometric models and their renderings. Such geometric models and their graphical renderings span the gambit from simple to complex, and can vary in subject matter, e.g., artistic, industrial, etc. Some geometric modeling computer program products are two dimensional, providing only length and width dimensions of objects. The more complex three dimensional computer program products, on the other hand, provide three dimensionsxe2x80x94length, width, and depth/thickness.
Three dimensional geometric modeling programs can generate a scene or part which can comprise one or more constituent 3D solid shapes. For example, a scene or part featuring a simple table would comprise a solid shape for each leg of the table, as well as a solid shape for a flat table top. Thus, solid parts can be formed from other solid parts. In geometric modeling terms, the building of more complicated solid shapes in hierarchical fashion from simpler solid shapes (known as xe2x80x9cprimitivesxe2x80x9d) is known as xe2x80x9cconstructed solid geometryxe2x80x9d (xe2x80x9cCSGxe2x80x9d). The simpler solid shapes can be combined using various operations (e.g., Boolean operations such as xe2x80x9candxe2x80x9d, xe2x80x9corxe2x80x9d, xe2x80x9cnotxe2x80x9d, etc.). The computer stores the overall (complex) solid shape as a tree, each of the xe2x80x9cleavesxe2x80x9d of the tree comprising a primitive solid shape.
In one example geometric modeling computer program which is object-oriented, an executable object is used to define and generate each solid shape. The object for each solid shape can have several associated components, the components being a combination of executable code and data structure. Examples of such components are a boundary representation (xe2x80x9cB-repxe2x80x9d) component (having a data structure describing the geometry and topology data for the solid shape [e.g., length, width, depth, and coordinates of the solid part], a history/creation component (which includes data which indicates an order or chronological sequence of steps employed to construct the solid shape), a visual component; a physical component; a functional component; and a behavioral component. Other example components, and the employment of components generally, are described in U.S. Pat. No. 5,894,310, entitled xe2x80x9cIntelligent Shapes For Authoring Three-Dimensional Modelsxe2x80x9d, incorporated herein by reference.
One of the components described in U.S. Pat. No. 5,894,310 is a sizebox component. In U.S. Pat. No. 5,894,310, once a solid shape has been selected by a user with a mouse cursor or the like, the sizebox component for the shape is accessed. The sizebox component specifies the dimensions of the maximum extent of the corresponding selected solid shape, and thus defines a parallelpiped (e.g., a box) in space that may enclosed the selected shape. A sizebox is drawn around the selected shape. The sizebox includes handles displayed on each of the six faces of the sizebox. The user can use a drag technique to pull or move a handle to change an associated sizebox dimension, and in response the dimension of the displayed solid shape is correspondingly changed graphically as the sizebox handle is moved in one direction or the other.
U.S. Pat. No. 5,894,310, entitled xe2x80x9cThree Dimensional Computing Graphics Tool Facilitating Movement of Displayed Objectxe2x80x9d, incorporated herein by reference, discloses a graphics tool, commercially known as the TriBall(copyright),  which facilitates positioning of a selected solid shape or solid part. The tool includes a displayed object reference frame which takes the form of a spherical countour line and various handles. The handles of the object reference frame include both object image handles (classified as both planar and knob handles) and frame handles. The object image handles are used to position the object for which the tool was selected, the frame handles facilitate movement of the tool relative to the displayed selected object. When a mouse pointer is near one of the handles, the mouse pointer can change its appearance, and selected geometry of the tool can be highlighted. Certain enhancements to this graphics tool are described in U.S. Pat. No. 6,295,069, which is also incorporated herein by reference.
Solid shapes typically have one or more profiles. Profiles are two dimensional shapes that can be extruded, spun, lofted, or swept to form a three dimensional solid shape. The profile information is typically included in one of the components of the is solid shape, e.g., the profile component.
When a user designs a new solid shape, the profile shape that is used for generating the new solid shape is typically much more irregular and complex than a simple rectangular profile. When a user resizes a shape that has a rectangular profile, the sizebox handles behave very nicely and give the user what is expected. However, with solid shapes that have irregular or complex profiles, using the sizebox handles will resize the shape, but with the side effect of stretching the curves or paths of the profile such that the curves or paths more or change undesirably. Therefore, although the overall sizebox of a solid shape could be changed by manipulation of sizebox handles as described above, heretofore it has not been possible to edit the profile information without the user entering a special editing mode. In other words, previously the user had to terminate the current mode of operation and select a special button or the like for entering a two-dimensional editing mode. The two-dimensional editing mode had its own characteristic operations which facilitated editing of the profile information. Upon completion of the profile editing, the user had to perform a separate step of exiting the editing mode before continuing work on the solid shape or part in a three dimensional mode. What is desired is that users can quickly adjust the position of the underlying geometry without having to enter a two dimensional editing mode.
What is needed, therefore, and an object of the present invention, is a three dimensional computer aided geometric modeling system which effectively and efficiently allows plural editing modes in a three dimensional graphical context.
A computer program product executes in a computer workstation according to methods of the invention to provide editing handles for solid shapes. The computer program provides a graphical user interface in the preferred form of an icon which is visually associated with a selected displayed solid shape and which, when activated via a user input device, toggles or cycles through plural editing modes of the displayed shape. In the plural editing modes, other graphical user interfaces which include editing xe2x80x9chandlesxe2x80x9d can be utilized to perform various editing functions, the handles of each editing mode having functions dependent upon the respective editing mode. The editing handles themselves are subject to novel employments and manipulations in accordance with aspects of the present invention.
The toggled or cycle graphical user interface, known as a shape editing mode icon, is used to cycle or toggle through plural editing modes of a selected displayed shape. The number and nature of the editing modes for a solid shape depend upon the type of solid shape that is selected. For example, an extruded solid shape may have a first edit mode being a sizebox edit mode (for editing dimensions of a maximum extent of the displayed shape) and a second edit mode being a profile edit mode (for editing the profile that is extruded to form the solid shape). For a bend shape such as utilized for sheet metal work, one of the editing modes can be used for editing one of a distance, angle, and radius of the bend solid shape, and another editing modes can be used to edit a relief feature of the bend solid shape.
When entered, most of the plural editing modes generate their own graphical user interfaces, with those graphical user interfaces having plural members known as editing xe2x80x9chandlesxe2x80x9d. For example, the sizebox editing mode generates a sizebox graphical user interface having, in addition to a six-faced sizebox displayed for the selected displayed solid shape, six sizebox handles for the respective six faces of the sizebox. Similarly, toggling to the profile editing mode generates a graphical user interface depicting each of the segments or paths of the profile that is extruded or otherwise utilized to form the solid shape, as well as an associated profile handle for each segment or path. As illustrated herein, one example embodiment of a handle has an attachment point or base point relative to the displayed object, a handle knob which can be grasp by the user input device (cursor), and a handle stem which connects the handle attachment point to the handle knob.
In accordance with one aspect of the present invention, the editing handles of at least some of the graphical user interfaces of the various editing modes are not displayed until a cursor roams into a neighborhood of each handle. In other words, an editing handle is displayed only when the cursor is nearby, and only one editing handle is displayed at a time.
The invention provides various techniques for directly positioning or aligning a selected handle with other features. For example, the handle and the displayed object associated therewith are directly moveable so that (1) when a point is selected, the handle becomes coincident with the selected point; or (2) when a center point of a face of a solid shape is selected, the handle becomes aligned with the center point of the face of the solid shape.
In accordance with yet another direct movement technique of the invention known as Direct SmartSnap(trademark), when the user input device is utilized to select a handle and the selected handle is subsequently dragged across a scene shown on the display device, features of the scene having one or more predetermined relationships with positions on the scene through which a snap point of the handle is dragged are sequentially highlighted for visual feedback. Moreover, upon occurrence of a prescribed action of the user input device the handle is aligned with a last of the sequentially highlighted features. The predetermined relationships include a feature being hit or having a projection which is hit by the dragged handle.
The computer program also provides yet other features for various editing handles. These features include (1) the ability of a user to specify an offset distance to move a selected handle relative to a chosen point; (2) the ability for the user to specify a snap point other than the default snap point; (3) the ability of the user to orient the handle away from its default orientation; and (4) the display of dimensional feedback. In the illustrated embodiment, the features are particularly implemented with respect to profile handles.
In accordance with the offset distance specification feature of the invention, after a point in a scene depicted on the display device has been selected by the user input device, the program provides visual feedback regarding a distance currently separating the selected point and the handle. Advantageously, the program provides means for the user to input a new distance to be used for separating the selected point and the handle, and in response to input of the new distance the program displays the selected point and the handle as being separated by the new distance.
The orientation of the handle stem is selectively adjustable as follows: (1) to be aligned with an imaginary line connecting the handle attachment point and a point specified by the user input device; (2) to be aligned with an imaginary line connecting the handle attachment point and a center point of a face of a displayed object specified by the user input device; (3) to be aligned with an imaginary line connecting the handle attachment point and two points specified by the user input device; (4) to be parallel with a selected edge of a displayed object as specified by the user input device; (5) to be perpendicular to a selected edge of a displayed object as specified by the user input device; (6) to be perpendicular to an axis of a selected face of a displayed object as specified by the user input device.